// 给你一个整数数组 nums ，找到其中最长严格递增子序列的长度。

// 子序列是由数组派生而来的序列，删除（或不删除）数组中的元素而不改变其余元素的顺序。例如，[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

// 来源：力扣（LeetCode）
// 链接：https://leetcode-cn.com/problems/longest-increasing-subsequence
// 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

#include<bits/stdc++.h>
#include<string>
#include<vector>
#include<unordered_set>
#include<unordered_map>
#include<set>
#include<queue>
using namespace std;

// 23错误

class Solution {
public:
    int lengthOfLIS(vector<int>& nums) {
        if(nums.size()==1){
            return 1;
        }
        vector<vector<int>> dp(nums.size(),vector<int>(2));
        dp[0][0] = 1;
        dp[0][1] = nums[0];
        for(int i=1;i<nums.size();i++){
            for(int j=i-1;j>=0;j--){
                int val;
                if(nums[i]>dp[j][1]){
                    val = dp[j][0] + 1;
                    dp[i][0] = max(dp[i][0],val); 
                    dp[i][1] = nums[i];
                }
                else{
                    val = dp[j][0];
                    if(val == 1){
                        dp[i][1] = nums[i];
                    }
                    else{
                        dp[i][1] = dp[j][1];
                    }
                    dp[i][0] = max(dp[i][0],val); 
                }
            }
        }
        for(int i=0;i<nums.size();i++){
            cout
        }
        return dp[nums.size()-1][0];
    }
};